var http = require('http');
var url = require('url');
var util = require('util');
var querystring = require('querystring');

var httpport = 3001;
 
http.createServer(function(req, res){
    // 解析 url 参数
    var params = url.parse(req.url, true).query;
    var pathname = url.parse(req.url, true).pathname;

    console.log(pathname);
    console.log(params);

    if(isEmptyObject(params)) {
        var post = ''; 

        req.on('data', function(chunk){    
            post += chunk;
        });
     
        // 在end事件触发后，通过querystring.parse将post解析为真正的POST请求格式，然后向客户端返回。
        req.on('end', function(){    
            post = querystring.parse(post);

            Post_requestHandlers(res,pathname,post);
        });    
    }
    else {
        Get_requestHandlers(res,pathname,params); 
    }
}).listen(httpport);

function isEmptyObject(obj) {   
　　for (var key in obj){
　　　　return false;//返回false，不为空对象
　　}　　
　　return true;//返回true，为空对象
}

function Post_requestHandlers(res,path,param) {
    if(path == '/PostData') {
        PostData(res,param);
    }
}

function Get_requestHandlers(res,path,param) {
    if(path == '/GetData') {
        GetData(res,param); 
    }
}

function GetData(res,param) {
    var qtt = {}; //定义消息（可以为字符串，对象等）
    qtt.name = param.name;

    res.setHeader("Access-Control-Allow-Origin", "*"); 
    res.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});
    res.write(JSON.stringify(qtt));
    res.end();
}

function PostData(res,param) {
    var qtt = {}; //定义消息（可以为字符串，对象等）
    qtt.name = param.name;

    res.setHeader("Access-Control-Allow-Origin", "*"); 
    res.setHeader('Access-Control-Allow-Methods', 'POST');
    res.setHeader('Access-Control-Allow-Headers', 'Content-type');
    //res.setHeader("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
    res.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});
    res.write(JSON.stringify(qtt));
    res.end();
}

console.log("http服务器建立成功，侦听端口:" + httpport);
